$(function() {
    // 1.定义全局变量对象
    let query = {
        pagenum: 1, //是	int	页码值
        pagesize: 5, //是	int	每页显示多少条数据
        cate_id: "", //否	string	文章分类的 Id
        state: "", //否	string	文章的状态，可选值有：已发布、草稿
    }

    initArticleList()
        // 2.获取文章分类列表,渲染到页面
    function initArticleList() {
        axios({
            method: "GET",
            url: "/my/article/list",
            params: query,
        }).then(res => {
            // console.log(res.data);
            let obj = res.data;
            if (obj.status != 0) {
                return layer.msg(obj.message)
            }
            // 成功后渲染到页面
            let arr = [];
            obj.data.forEach(ele => {
                arr.push(`
                <tr>
                        <td>${ele.title}</td>
                        <td>${ele.cate_name}</td>
                        <td>${dataFormat(ele.pub_date)}</td>
                        <td>${ele.state}</td>
                        <td>
                            <a href="/article/art_edit.html?id=${ele.Id}" class="layui-btn layui-btn-xs ">编辑</a>
                            <button data-id=${ele.Id}  class="btn-delete layui-btn layui-btn-xs layui-btn-danger">删除</button>
                        </td>
                    </tr>
                `)
            });
            let str = arr.join("")
                // 赋值到tbody中
            $("tbody").empty().html(str);
            // 分页
            pageRender(obj.total);

        })
    }

    // 3.初始化文章分类-下拉列表框(去发表文章中复制)
    let form = layui.form
    axios({
        method: "GET",
        url: "/my/article/cates"
    }).then(res => {
        // console.log(res.data);
        let obj = res.data;
        if (obj.status != 0) {
            return layer.msg(obj.message)
        }
        // 成功后渲染分类列表
        let arr = ['<option value="">请选择文章类别</option>'];
        obj.data.forEach(ele => {
            arr.push(`
            <option value="${ele.Id}">${ele.name}</option>
            `);
        });
        // 赋值
        let str = arr.join("");
        $("[name=cate_id]").html(str);
        form.render()
    })

    // 4.筛选
    $("#formSearch").on("submit", function(e) {
        e.preventDefault();
        // 获取分类和状态两个全局参数  的值
        query.cate_id = $("[name=cate_id]").val();
        query.state = $("[name=state]").val();
        // 重新调用文章列表初始化方法
        initArticleList();
    })

    // 5.分页功能
    var laypage = layui.laypage;

    function pageRender(total) {
        laypage.render({
            elem: 'pageBox', //注意，这里的 test1 是 ID，不用加 # 号
            count: total, //数据总数，从服务端得到
            limit: query.pagesize, //每页显示多少条
            curr: query.pagenum, //当前页
            // 配置定制化的分页
            layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
            limits: [2, 3, 4, 5],
            jump: function(obj, first) {
                //obj包含了当前分页的所有参数，比如：
                //console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
                //console.log(obj.limit); //得到每页显示的条数

                //首次不执行
                if (!first) {
                    //do something
                    // 修改参数,重新渲染页面
                    query.pagenum = obj.curr;
                    query.pagesize = obj.limit;
                    // 重新渲染
                    initArticleList()
                }
            }
        });
    }

    // 6.删除功能
    $("tbody").on("click", ".btn-delete", function() {
        let id = $(this).attr("data-id");
        layer.confirm('确认删除此文章吗?', { icon: 3, title: '提示' }, function(index) {
            //do something
            // 发送axios
            axios({
                method: "GET",
                url: "/my/article/delete/" + id,
            }).then(res => {
                // console.log(res.data);
                if (res.data.status != 0) {
                    return layer.msg(res.data.message)
                }
                // 成功提示
                layer.msg("恭喜您删除成功")
                    // 如果当前页面只剩一条数据,而且删除成功了,那么query.pagenum自减1
                    // 当前页要大于等于2,没有第0页,第一页就不能再减少了
                if ($(".btn-delete").length == 1 && query.pagenum >= 2) {
                    query.pagenum--;
                }
                // 优化判断
                /*  $(".btn-delete").length == 1 && query.pagenum >= 2 && query.pagenum--; */

                // 刷新页面列表
                initArticleList()
            })
            layer.close(index);
        });



    })


})